package base.thread_demo.demo18;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Timer;
import java.util.TimerTask;

/**
 * 定时器：可以让我们在指定的时间做某件事情，还可以重复的做某件事情。
 * 依赖Timer和TimerTask这两个类：
 * Timer:定时
 * 		public Timer()
 * 		public void schedule(TimerTask task,long delay)
 * 		public void schedule(TimerTask task,long delay,long period)
 * 		public void cancel()
 * TimerTask:任务
 */
public class TimerDemo1 {
    public static void main(String[] args) {
        // 创建一个定时器对象
        Timer timer = new Timer();
        // 定时 3s 后执行任务,任务完成定时器停止工作
        timer.schedule(new MyTask(timer), 2000);
//        timer.cancel();




        // 重新创建一个定时器,实现连环任务,3s后首次执行定时任务,之后循环每隔 1s 执行
        timer = new Timer();
        timer.schedule(new MyTask1(), 3000, 1000);
       // timer.cancel();

    }

}

// 做一个任务
class MyTask extends TimerTask {
    private static Logger logger = LoggerFactory.getLogger(MyTask.class);
    private Timer timer;

    public MyTask(){}

    public MyTask(Timer timer){
        this.timer = timer;
    }

    @Override
    public void run() {
        logger.info("bing,爆炸");
        timer.cancel();// 停止定时任务,结束进程
    }
}

class MyTask1 extends TimerTask {
    private static Logger logger = LoggerFactory.getLogger(MyTask1.class);

    @Override
    public void run() {
        logger.info("bing bing, 爆炸");
    }
}

